#include<iostream>
#include<pthread.h>
#include<unistd.h>
using namespace std;
  //创建条件变量
  pthread_cond_t cond;
  //创建互斥量
  pthread_mutex_t lock;

void* pthread1_run(void* arg){
  while(1){
    pthread_cond_wait(&cond,&lock);
    cout<<"唤醒成功，活动!"<<endl;
  }
}
void* pthread2_run(void* arg){
  while(1){
    pthread_cond_signal(&cond);
    sleep(1);
  }
}
int main (){
  //初始化条件变量和互斥量
  pthread_cond_init(&cond,nullptr);
  pthread_mutex_init(&lock,nullptr);
  //创建两个线程
  pthread_t tid1,tid2;
  pthread_create(&tid1,nullptr,pthread1_run,nullptr);
  pthread_create(&tid2,nullptr,pthread2_run,nullptr);

  //等待两个线程
  pthread_join(tid1,nullptr);
  pthread_join(tid2,nullptr);
  
  //摧毁互斥量和条件变量
  pthread_mutex_destroy(&lock);
  pthread_cond_destroy(&cond);
  

  return 0;
}
